package com.ai.dmc.index.common.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5 {
	/**
	 * 
	 * @Description : 16位加密
	 * 
	 * @return String
	 *
	 * @author : wucm
	 * @date : 2015年12月1日 上午11:04:06
	 *
	 */
	public static String encode16(String plainText) {
		String result = null;
		try {
			MessageDigest md = MessageDigest.getInstance("MD5");
			md.update(plainText.getBytes());
			byte b[] = md.digest();
			int i;
			StringBuffer buf = new StringBuffer("");
			for (int offset = 0; offset < b.length; offset++) {
				i = b[offset];
				if (i < 0)
					i += 256;
				if (i < 16)
					buf.append("0");
				buf.append(Integer.toHexString(i));
			}
			result = buf.toString().substring(8, 24);
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		return result;
	}

	/**
	 * 
	 * @Description : 32位加密
	 * 
	 * @return String
	 *
	 * @author : wucm
	 * @date : 2015年12月1日 上午11:04:15
	 *
	 */
	public static String encode32(String plainText) {
		String result = null;
		try {
			MessageDigest md = MessageDigest.getInstance("MD5");
			md.update(plainText.getBytes());
			byte b[] = md.digest();
			int i;
			StringBuffer buf = new StringBuffer("");
			for (int offset = 0; offset < b.length; offset++) {
				i = b[offset];
				if (i < 0)
					i += 256;
				if (i < 16)
					buf.append("0");
				buf.append(Integer.toHexString(i));
			}
			result = buf.toString();
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		return result;
	}

	public static void main(String args[]) {
		String passwd = "18255556666"; // 密码明文
		System.out.println("MD5 16位加密 : " + MD5.encode16(passwd));
		System.out.println("MD5 16位加密 : " + MD5.encode32(passwd));
	}
}
